package com.hunliji.monitor.web.facade;

import com.hunliji.monitor.web.model.param.feishu.InterceptPluginContextParam;
import com.hunliji.monitor.web.model.param.feishu.NotifyParam;
import com.hunliji.monitor.web.model.vo.NotifyVO;

/**
 * 飞书业务处理
 * @author wuchen
 */
public interface FeiShuFacade {
    /**
     * 处理通知
     * @param notifyParam
     * @exception : 错误
     * @return
     */
    NotifyVO handleNotify(NotifyParam notifyParam) throws Exception;

    /**
     * token处理
     */
    void handleToken();

    /**
     * 处理飞书群组的更新
     */
    void handleChatGroup();

    /**
     * 处理飞书群组的成员
     */
    void handleChatGroupMember();

    /**
     * 处理飞书的通知事件
     * @param receiveSign：接收方标记
     * @param content：接收的内容
     */
    void handleNotify(String receiveSign,String content);

    /**
     * 获取飞书token
     * @return
     */
    String getAccessToken();

    /**
     * 获取飞书gitlab token
     * @return
     */
    String getGitLabAccessToken();

    /**
     * 处理事件通知
     */
    void handleInterceptionNotify(InterceptPluginContextParam param);

    /**
     * 延迟事件取消
     */
    void delayCancel(Long workItemId, Integer type);

    void createDefect(String title, String content);
}
